#pragma once

#include "Vocoder.h"

/*
Semi-random frequency provider. Has lower/higher bound on both frequency and duration of each frequency.
*/
class RandomFrequencyProvider :
	public FrequencyProvider
{
public:
	RandomFrequencyProvider(unsigned int lowFrequencyBound, unsigned int highFrequencyBound, unsigned int minSlices, unsigned int maxSlices);
	~RandomFrequencyProvider(void);

	unsigned int GetFrequency(short* sample, unsigned int length, std::vector<SampleMarker>* markers);

	unsigned int lowFrequncyBound;
	unsigned int highFrequncyBound;
	unsigned int minSlices;
	unsigned int maxSlices;

private:
	unsigned int curSliceCount;
	unsigned int curSliceIdx;
	unsigned int lastFrequency;
};
